package com.css.dzj.dzjdzqs.modules.apaction.appunish.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.google.common.base.Objects;
import org.hibernate.annotations.GenericGenerator;

import javax.persistence.*;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 行政处罚行为
 * @Author WT
 * @Date 2020/6/28
 */
@Entity
@Table(name = "AP_JGXW_PUNISH_ACTION", schema = "DZJJH", catalog = "")
public class ApPunishEntity {
    //主键
    private String id;
    //记录唯一标识
    private String recordUniqueIdentity;
    //监管事项目录编码
    private String superviseItemCode;
    //处罚行为名称
    private String punishActionName;
    //处罚行为编号
    private String punishActionCode;
    //实施机构
    private String implementInstitution;
    //实施机构编码
    private String implementInstitutionCode;
    //受委托部门
    private String entrustDept;
    //受委托部门编码
    private String entrustDeptCode;
    //监管对象
    private String superviseObject;
    //案件来源
    private String caseSource;
    //检查行为编号
    private String checkActionCode;
    //行政相对人（单位/个人）
    private String administrativeCp;
    //行政相对人性质
    private String administrativeCpNa;
    //行政相对人证件类型
    private String administrativeCpCeType;
    //行政相对人(单位/个人)编码
    private String administrativeCpUiCode;
    //注册地址
    private String addressRegistered;
    //经营地址
    private String addressOperating;
    //行政区划代码
    private String areaNumber;
    //违法事实
    private String illegalFact;
    //处罚依据
    private String punishAccord;
    //处罚程序
    private String punishProcedure;
    //是否听证
    private String ifHearingWitnesses;
    //处罚立案时间
    private Date filingDate;
    //是否涉刑案件
    private String caseInvolvingPunishment;
    //是否重大案件
    private String majorCase;
    //是否法制审核
    private String legalReview;
    //法制审核日期
    private Date legalReviewDate;
    //法制审核意见
    private String legalReviewOpinions;
    //是否集体讨论
    private String discussCollectively;
    //集体讨论日期
    private Date groupDiscussionDate;
    //集体讨论结论
    private String groupDiscussionConclusion;
    //处罚文书号
    private String punishDocumentCode;
    //作出行政处罚决定日期
    private Date setDate;
    //处罚种类
    private String punishType;
    //罚款金额
    private BigDecimal fine;
    //处罚结果
    private String penaltyResult;
    //行政复议
    private String administrativeReconsider;
    //行政诉讼
    private String administrativeAction;
    //结案情况—执行方式
    private String casesClosedExecutionWay;
    //结案情况—执行结果
    private String casesClosedExecutionResult;
    //结案实缴罚款金额
    private BigDecimal casesClosedFine;
    //结案情况—不予行政处罚
    private String casesClosedExecution;
    //结案情况—结案日期
    private Date administrativePenalties;
    //其他处理情况
    private String otherDisposals;
    //移送时间
    private Date deportationDate;
    //报送时间
    private Date submittedDate;
    //报送人员
    private String submittedPersonnel;

    @Id
    @Column(name = "ID")
    @GeneratedValue(generator = "SnowflakeId")
    @GenericGenerator(name = "SnowflakeId",strategy = "com.css.dzj.dzjdzqs.common.util.SnowflakeId")
    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    @Basic
    @Column(name = "Record_Unique_Identity")
    public String getRecordUniqueIdentity() {
        return recordUniqueIdentity;
    }

    public void setRecordUniqueIdentity(String recordUniqueIdentity) {
        this.recordUniqueIdentity = recordUniqueIdentity;
    }

    @Basic
    @Column(name = "Supervise_Item_Code")
    public String getSuperviseItemCode() {
        return superviseItemCode;
    }

    public void setSuperviseItemCode(String superviseItemCode) {
        this.superviseItemCode = superviseItemCode;
    }

    @Basic
    @Column(name = "Punish_Action_Name")
    public String getPunishActionName() {
        return punishActionName;
    }

    public void setPunishActionName(String punishActionName) {
        this.punishActionName = punishActionName;
    }

    @Basic
    @Column(name = "Punish_Action_Code")
    public String getPunishActionCode() {
        return punishActionCode;
    }

    public void setPunishActionCode(String punishActionCode) {
        this.punishActionCode = punishActionCode;
    }

    @Basic
    @Column(name = "Implement_Institution")
    public String getImplementInstitution() {
        return implementInstitution;
    }

    public void setImplementInstitution(String implementInstitution) {
        this.implementInstitution = implementInstitution;
    }

    @Basic
    @Column(name = "Implement_Institution_Code")
    public String getImplementInstitutionCode() {
        return implementInstitutionCode;
    }

    public void setImplementInstitutionCode(String implementInstitutionCode) {
        this.implementInstitutionCode = implementInstitutionCode;
    }

    @Basic
    @Column(name = "Entrust_Dept")
    public String getEntrustDept() {
        return entrustDept;
    }

    public void setEntrustDept(String entrustDept) {
        this.entrustDept = entrustDept;
    }

    @Basic
    @Column(name = "Entrust_Dept_Code")
    public String getEntrustDeptCode() {
        return entrustDeptCode;
    }

    public void setEntrustDeptCode(String entrustDeptCode) {
        this.entrustDeptCode = entrustDeptCode;
    }

    @Basic
    @Column(name = "Supervise_Object")
    public String getSuperviseObject() {
        return superviseObject;
    }

    public void setSuperviseObject(String superviseObject) {
        this.superviseObject = superviseObject;
    }

    @Basic
    @Column(name = "Case_Source")
    public String getCaseSource() {
        return caseSource;
    }

    public void setCaseSource(String caseSource) {
        this.caseSource = caseSource;
    }

    @Basic
    @Column(name = "Check_Action_Code")
    public String getCheckActionCode() {
        return checkActionCode;
    }

    public void setCheckActionCode(String checkActionCode) {
        this.checkActionCode = checkActionCode;
    }

    @Basic
    @Column(name = "Administrative_Cp")
    public String getAdministrativeCp() {
        return administrativeCp;
    }

    public void setAdministrativeCp(String administrativeCp) {
        this.administrativeCp = administrativeCp;
    }

    @Basic
    @Column(name = "Administrative_Cp_Na")
    public String getAdministrativeCpNa() {
        return administrativeCpNa;
    }

    public void setAdministrativeCpNa(String administrativeCpNa) {
        this.administrativeCpNa = administrativeCpNa;
    }

    @Basic
    @Column(name = "Administrative_Cp_Ce_Type")
    public String getAdministrativeCpCeType() {
        return administrativeCpCeType;
    }

    public void setAdministrativeCpCeType(String administrativeCpCeType) {
        this.administrativeCpCeType = administrativeCpCeType;
    }

    @Basic
    @Column(name = "Administrative_Cp_UI_Code")
    public String getAdministrativeCpUiCode() {
        return administrativeCpUiCode;
    }

    public void setAdministrativeCpUiCode(String administrativeCpUiCode) {
        this.administrativeCpUiCode = administrativeCpUiCode;
    }

    @Basic
    @Column(name = "Address_Registered")
    public String getAddressRegistered() {
        return addressRegistered;
    }

    public void setAddressRegistered(String addressRegistered) {
        this.addressRegistered = addressRegistered;
    }

    @Basic
    @Column(name = "Address_Operating")
    public String getAddressOperating() {
        return addressOperating;
    }

    public void setAddressOperating(String addressOperating) {
        this.addressOperating = addressOperating;
    }

    @Basic
    @Column(name = "Area_Number")
    public String getAreaNumber() {
        return areaNumber;
    }

    public void setAreaNumber(String areaNumber) {
        this.areaNumber = areaNumber;
    }

    @Basic
    @Column(name = "Illegal_Fact")
    public String getIllegalFact() {
        return illegalFact;
    }

    public void setIllegalFact(String illegalFact) {
        this.illegalFact = illegalFact;
    }

    @Basic
    @Column(name = "Punish_Accord")
    public String getPunishAccord() {
        return punishAccord;
    }

    public void setPunishAccord(String punishAccord) {
        this.punishAccord = punishAccord;
    }

    @Basic
    @Column(name = "Punish_Procedure")
    public String getPunishProcedure() {
        return punishProcedure;
    }

    public void setPunishProcedure(String punishProcedure) {
        this.punishProcedure = punishProcedure;
    }

    @Basic
    @Column(name = "If_Hearing_Witnesses")
    public String getIfHearingWitnesses() {
        return ifHearingWitnesses;
    }

    public void setIfHearingWitnesses(String ifHearingWitnesses) {
        this.ifHearingWitnesses = ifHearingWitnesses;
    }

    @Basic
    @Column(name = "Filing_Date")
    @JsonFormat(shape= JsonFormat.Shape.STRING,pattern="yyyy-MM-dd",timezone="GMT+8")
    public Date getFilingDate() {
        return filingDate;
    }

    public void setFilingDate(Date filingDate) {
        this.filingDate = filingDate;
    }

    @Basic
    @Column(name = "Case_Involving_Punishment")
    public String getCaseInvolvingPunishment() {
        return caseInvolvingPunishment;
    }

    public void setCaseInvolvingPunishment(String caseInvolvingPunishment) {
        this.caseInvolvingPunishment = caseInvolvingPunishment;
    }

    @Basic
    @Column(name = "Major_Case")
    public String getMajorCase() {
        return majorCase;
    }

    public void setMajorCase(String majorCase) {
        this.majorCase = majorCase;
    }

    @Basic
    @Column(name = "Legal_Review")
    public String getLegalReview() {
        return legalReview;
    }

    public void setLegalReview(String legalReview) {
        this.legalReview = legalReview;
    }

    @Basic
    @Column(name = "Legal_Review_Date")
    @JsonFormat(shape= JsonFormat.Shape.STRING,pattern="yyyy-MM-dd",timezone="GMT+8")
    public Date getLegalReviewDate() {
        return legalReviewDate;
    }

    public void setLegalReviewDate(Date legalReviewDate) {
        this.legalReviewDate = legalReviewDate;
    }

    @Basic
    @Column(name = "Legal_Review_Opinions")
    public String getLegalReviewOpinions() {
        return legalReviewOpinions;
    }

    public void setLegalReviewOpinions(String legalReviewOpinions) {
        this.legalReviewOpinions = legalReviewOpinions;
    }

    @Basic
    @Column(name = "Discuss_Collectively")
    public String getDiscussCollectively() {
        return discussCollectively;
    }

    public void setDiscussCollectively(String discussCollectively) {
        this.discussCollectively = discussCollectively;
    }

    @Basic
    @Column(name = "Group_Discussion_Date")
    @JsonFormat(shape= JsonFormat.Shape.STRING,pattern="yyyy-MM-dd",timezone="GMT+8")
    public Date getGroupDiscussionDate() {
        return groupDiscussionDate;
    }

    public void setGroupDiscussionDate(Date groupDiscussionDate) {
        this.groupDiscussionDate = groupDiscussionDate;
    }

    @Basic
    @Column(name = "Group_Discussion_Conclusion")
    public String getGroupDiscussionConclusion() {
        return groupDiscussionConclusion;
    }

    public void setGroupDiscussionConclusion(String groupDiscussionConclusion) {
        this.groupDiscussionConclusion = groupDiscussionConclusion;
    }

    @Basic
    @Column(name = "Punish_Document_Code")
    public String getPunishDocumentCode() {
        return punishDocumentCode;
    }

    public void setPunishDocumentCode(String punishDocumentCode) {
        this.punishDocumentCode = punishDocumentCode;
    }

    @Basic
    @Column(name = "Set_Date")
    @JsonFormat(shape= JsonFormat.Shape.STRING,pattern="yyyy-MM-dd",timezone="GMT+8")
    public Date getSetDate() {
        return setDate;
    }

    public void setSetDate(Date setDate) {
        this.setDate = setDate;
    }

    @Basic
    @Column(name = "Punish_Type")
    public String getPunishType() {
        return punishType;
    }

    public void setPunishType(String punishType) {
        this.punishType = punishType;
    }

    @Basic
    @Column(name = "Fine")
    public BigDecimal getFine() {
        return fine;
    }

    public void setFine(BigDecimal fine) {
        this.fine = fine;
    }

    @Basic
    @Column(name = "Penalty_Result")
    public String getPenaltyResult() {
        return penaltyResult;
    }

    public void setPenaltyResult(String penaltyResult) {
        this.penaltyResult = penaltyResult;
    }

    @Basic
    @Column(name = "Administrative_Reconsider")
    public String getAdministrativeReconsider() {
        return administrativeReconsider;
    }

    public void setAdministrativeReconsider(String administrativeReconsider) {
        this.administrativeReconsider = administrativeReconsider;
    }

    @Basic
    @Column(name = "Administrative_Action")
    public String getAdministrativeAction() {
        return administrativeAction;
    }

    public void setAdministrativeAction(String administrativeAction) {
        this.administrativeAction = administrativeAction;
    }

    @Basic
    @Column(name = "Cases_Closed_Execution_Way")
    public String getCasesClosedExecutionWay() {
        return casesClosedExecutionWay;
    }

    public void setCasesClosedExecutionWay(String casesClosedExecutionWay) {
        this.casesClosedExecutionWay = casesClosedExecutionWay;
    }

    @Basic
    @Column(name = "Cases_Closed_Execution_Result")
    public String getCasesClosedExecutionResult() {
        return casesClosedExecutionResult;
    }

    public void setCasesClosedExecutionResult(String casesClosedExecutionResult) {
        this.casesClosedExecutionResult = casesClosedExecutionResult;
    }

    @Basic
    @Column(name = "Cases_Closed_Fine")
    public BigDecimal getCasesClosedFine() {
        return casesClosedFine;
    }

    public void setCasesClosedFine(BigDecimal casesClosedFine) {
        this.casesClosedFine = casesClosedFine;
    }

    @Basic
    @Column(name = "Cases_Closed_Execution")
    public String getCasesClosedExecution() {
        return casesClosedExecution;
    }

    public void setCasesClosedExecution(String casesClosedExecution) {
        this.casesClosedExecution = casesClosedExecution;
    }

    @Basic
    @Column(name = "Administrative_Penalties")
    @JsonFormat(shape= JsonFormat.Shape.STRING,pattern="yyyy-MM-dd",timezone="GMT+8")
    public Date getAdministrativePenalties() {
        return administrativePenalties;
    }

    public void setAdministrativePenalties(Date administrativePenalties) {
        this.administrativePenalties = administrativePenalties;
    }

    @Basic
    @Column(name = "Other_Disposals")
    public String getOtherDisposals() {
        return otherDisposals;
    }

    public void setOtherDisposals(String otherDisposals) {
        this.otherDisposals = otherDisposals;
    }

    @Basic
    @Column(name = "Deportation_Date")
    @JsonFormat(shape= JsonFormat.Shape.STRING,pattern="yyyy-MM-dd",timezone="GMT+8")
    public Date getDeportationDate() {
        return deportationDate;
    }

    public void setDeportationDate(Date deportationDate) {
        this.deportationDate = deportationDate;
    }

    @Basic
    @Column(name = "Submitted_Date")
    @JsonFormat(shape= JsonFormat.Shape.STRING,pattern="yyyy-MM-dd",timezone="GMT+8")
    public Date getSubmittedDate() {
        return submittedDate;
    }

    public void setSubmittedDate(Date submittedDate) {
        this.submittedDate = submittedDate;
    }

    @Basic
    @Column(name = "Submitted_Personnel")
    public String getSubmittedPersonnel() {
        return submittedPersonnel;
    }

    public void setSubmittedPersonnel(String submittedPersonnel) {
        this.submittedPersonnel = submittedPersonnel;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        ApPunishEntity that = (ApPunishEntity) o;
        return Objects.equal(id, that.id) &&
                Objects.equal(recordUniqueIdentity, that.recordUniqueIdentity) &&
                Objects.equal(superviseItemCode, that.superviseItemCode) &&
                Objects.equal(punishActionName, that.punishActionName) &&
                Objects.equal(punishActionCode, that.punishActionCode) &&
                Objects.equal(implementInstitution, that.implementInstitution) &&
                Objects.equal(implementInstitutionCode, that.implementInstitutionCode) &&
                Objects.equal(entrustDept, that.entrustDept) &&
                Objects.equal(entrustDeptCode, that.entrustDeptCode) &&
                Objects.equal(superviseObject, that.superviseObject) &&
                Objects.equal(caseSource, that.caseSource) &&
                Objects.equal(checkActionCode, that.checkActionCode) &&
                Objects.equal(administrativeCp, that.administrativeCp) &&
                Objects.equal(administrativeCpNa, that.administrativeCpNa) &&
                Objects.equal(administrativeCpCeType, that.administrativeCpCeType) &&
                Objects.equal(administrativeCpUiCode, that.administrativeCpUiCode) &&
                Objects.equal(addressRegistered, that.addressRegistered) &&
                Objects.equal(addressOperating, that.addressOperating) &&
                Objects.equal(areaNumber, that.areaNumber) &&
                Objects.equal(illegalFact, that.illegalFact) &&
                Objects.equal(punishAccord, that.punishAccord) &&
                Objects.equal(punishProcedure, that.punishProcedure) &&
                Objects.equal(ifHearingWitnesses, that.ifHearingWitnesses) &&
                Objects.equal(filingDate, that.filingDate) &&
                Objects.equal(caseInvolvingPunishment, that.caseInvolvingPunishment) &&
                Objects.equal(majorCase, that.majorCase) &&
                Objects.equal(legalReview, that.legalReview) &&
                Objects.equal(legalReviewDate, that.legalReviewDate) &&
                Objects.equal(legalReviewOpinions, that.legalReviewOpinions) &&
                Objects.equal(discussCollectively, that.discussCollectively) &&
                Objects.equal(groupDiscussionDate, that.groupDiscussionDate) &&
                Objects.equal(groupDiscussionConclusion, that.groupDiscussionConclusion) &&
                Objects.equal(punishDocumentCode, that.punishDocumentCode) &&
                Objects.equal(setDate, that.setDate) &&
                Objects.equal(punishType, that.punishType) &&
                Objects.equal(fine, that.fine) &&
                Objects.equal(penaltyResult, that.penaltyResult) &&
                Objects.equal(administrativeReconsider, that.administrativeReconsider) &&
                Objects.equal(administrativeAction, that.administrativeAction) &&
                Objects.equal(casesClosedExecutionWay, that.casesClosedExecutionWay) &&
                Objects.equal(casesClosedExecutionResult, that.casesClosedExecutionResult) &&
                Objects.equal(casesClosedFine, that.casesClosedFine) &&
                Objects.equal(casesClosedExecution, that.casesClosedExecution) &&
                Objects.equal(administrativePenalties, that.administrativePenalties) &&
                Objects.equal(otherDisposals, that.otherDisposals) &&
                Objects.equal(deportationDate, that.deportationDate) &&
                Objects.equal(submittedDate, that.submittedDate) &&
                Objects.equal(submittedPersonnel, that.submittedPersonnel);
    }

    @Override
    public int hashCode() {
        return Objects.hashCode(id, recordUniqueIdentity, superviseItemCode, punishActionName, punishActionCode, implementInstitution, implementInstitutionCode, entrustDept, entrustDeptCode, superviseObject, caseSource, checkActionCode, administrativeCp, administrativeCpNa, administrativeCpCeType, administrativeCpUiCode, addressRegistered, addressOperating, areaNumber, illegalFact, punishAccord, punishProcedure, ifHearingWitnesses, filingDate, caseInvolvingPunishment, majorCase, legalReview, legalReviewDate, legalReviewOpinions, discussCollectively, groupDiscussionDate, groupDiscussionConclusion, punishDocumentCode, setDate, punishType, fine, penaltyResult, administrativeReconsider, administrativeAction, casesClosedExecutionWay, casesClosedExecutionResult, casesClosedFine, casesClosedExecution, administrativePenalties, otherDisposals, deportationDate, submittedDate, submittedPersonnel);
    }
}
